package main

import "fmt"

func main() {
	var v1 int =1
	var v2 int64=234
	var v3 string ="hello"
	var v4 float32=1.234
	MyPrintf(v1,v2,v3,v4)
}
func MyPrintf(args ...interface{}) {
	for _, arg := range args {
		switch arg.(type) {
		case int:
			fmt.Println(arg, "is an int value")
		case string:
			fmt.Println(arg, "is an string value")
		case int64:
			fmt.Println(arg, "is an int64 value")
		default:
			fmt.Println(arg, "is an unknown type")
		}
	}
}

//入参数量不定
func myfunc(args ...int) {
	for _, arg := range args {
		fmt.Println(arg)
	}
	/*
	2. 不定参数的传递
	// 按原样传递
	myfunc3(args...)
	// 传递片段，实际上任意的int slice都可以传进去
	myfunc3(args[1:]...)
	*/
}

//3. 任意类型的不定参数 inteface为接收任意类型
func Printf(format string, args ... interface{}) {
	for _, arg := range args {
		fmt.Println(arg)
	}
}
